const config = require('../config/config');
const pageConf = config.page_conf;
const { startProcess, qiniuUpload } = require('../libs/utils');
const qiniuConf = config.qiniu;

// const extenedUtils = require('../lib/extentions'); //扩展工具类方法 utils

// 导入服务
const ProductServer = require('../services/Product');
const { addEditProductData } = require('../services/Product');


/* 主页路由控制器*/
class IndexController {
  //构造一个indexController中间件类，导出类的实例
  //每个也对应一个路由方法

  /* 提交产品修改或添加数据*/
  async postProductData(ctx, next) {
    ctx.set('Access-Control-Allow-Origin', '*');
    let postData = ctx.request.body;

    ctx.body = {
      status: 200,
      msg: 'success'
    }
    
    console.log(postData);

    //过滤产品数据
    let data = {
      pid: Number(postData.pid),
      pBigSort: postData.pBigSort,
      pDetailSort: postData.pDetailSort,
      pName: postData.pName,
      pIntro: postData.pIntro,
      pPrice: Number(postData.pPrice),
      pBuyInPrice: Number(postData.pBuyInPrice),  //进货价
      pReserve: postData.pReserve,
      pTag: postData.pTag,
      pImgUrlKey: postData.pImgUrlKey,
      pPurchased: 0,  //初始为0，可购买  这个是系统记录值
    }

    // 模拟测试用数据 使用了模拟数据，实际上要通过参数传入数据
    // var data = {
    //   pid: '391728',
    //   pBigSort: '电器',
    //   pDetailSort: '电饭锅',
    //   pName: '臻米脱糖电饭煲家用3L智能多功能低糖养生锅小型全自动迷你小米白',
    //   pIntro: '蒸出低糖养生饭 保修半年 7天内有质量问题可换',
    //   pPrice: 1299.00,
    //   pBuyInPrice: 1099.00,  //进货价
    //   pReserve: '60',
    //   pTag: '臻米牌 电饭锅 脱糖 小型',
    //   pImgUrlKey: 'product/97662711.jpg',
    //   pPurchased: 87,  //初始为0，可购买  这个是系统记录值
    // };

    // 存储数据
    if (data.pid) {
      try {
        // 保存进数据库
        const result = addEditProductData(data);   //添加或修改
        //each itemData in the db
        //每项数据插入数据库
        if (result) {
          console.log('data create ok!');
          //保存成功，返回添加成功的响应
        } else {
          console.log('data create faild')
        }

      } catch (err) {
        console.log('上传发生错误');
        console.log(err);
      }
    }
  }
  //end

  /* 获取添加产品页面*/
  async getAddProduct(ctx, next) {
    //这里必须写await
    await ctx.render('admin/admin-add-edit-prod', {
      pageConf: pageConf.addProduct,
      path: '/admin/add-product',
      isEdit: false //非编辑，添加
    });
  }
  //end

  /* 获取编辑产品页面*/
  async getEditProduct(ctx, next) {
    const pid = ctx.params.pid;
    let prod = await ProductServer.getProductById(pid);
    //这里必须写await
    await ctx.render('admin/admin-add-edit-prod', {
      pageConf: pageConf.addProduct,
      path: '/admin/edit-product',
      pid: pid,
      prod: prod,
      isEdit: true
    });
  }
  //end

  /* 获取产品页管理面*/
  async getManageProduct(ctx, next) {
    //查询数据库
    let prods = await ProductServer.getAdminManageProduct();
    //七牛图片前缀
    const qiniuImgUrl = config.qiniu.bucket.xingsheng.domain;

    //这里必须写await
    await ctx.render('admin/admin-manage-prod', {
      pageConf: pageConf.managePage,
      path: '/admin/manage-product',
      prods: prods,
      qiniuImgUrl
    });
  }
  //end

  /* 删除产品中间件 delete product middleware*/
  async postDeleteProduct(ctx, next) {
    let pid = ctx.request.body.pid;
    //删除该项产品
    let reslut = await ProductServer.deleteProductById(pid);
    //查询新的数据
    let prods = await ProductServer.getAdminManageProduct();
    //七牛图片前缀
    const qiniuImgUrl = config.qiniu.bucket.xingsheng.domain;
    //这里必须写await
    return ctx.body = {
      state: 200,
      msg: 'delete successs!'
    }
  }



  // //搜索的list
  // async list(ctx, next) {

  //   const keyword = ctx.params.keyword;

  //   const data = await indexModel.getXiaomiDatas({
  //     swiper: false,
  //     phone: true,
  //     field: true
  //   });

  //   const phoneData = data.phone_data,
  //     fieldData = data.field_data,
  //     searchData = !keyword ? phoneData : extention.filterData(phoneData, keyword);

  //   await ctx.render('list', {
  //     pageConf: pageConf.list,
  //     phoneData,
  //     fieldData,
  //     searchData
  //   })
  // }

  // //详情页
  // async detail(ctx, next) {
  //   const id = ctx.params.id;

  //   const data = await indexModel.getXiaomiDatas({
  //     swiper: false,
  //     phone: true,
  //     field: true
  //   });

  //   const phoneData = data.phone_data,
  //     fieldData = data.field_data,
  //     phoneDetail = phoneData.filter(item => item.id === id )[0];

  //   await ctx.render('detail', {
  //     pageConf: pageConf.detail,
  //     phoneData,
  //     fieldData,
  //     phoneDetail
  //   })
  // }

  //404
  async my404(ctx, next) {


    // const data = await indexModel.getXiaomiDatas({
    //   swiper: false,
    //   phone: true,
    //   field: true
    // });

    // const phoneData = data.phone_data,
    //   fieldData = data.field_data;

    // await ctx.render('404', {
    //   title: '404',
    //   pageConf: pageConf.my404,
    //   phoneData,
    //   fieldData
    // })
  }
}

module.exports = new IndexController();